
package DAOMySQL;

import Modelo.Persona;
import java.sql.ResultSet;
import java.util.ArrayList;

public class Funcionarios {
    private DAOMySQL.Database db;
    private ArrayList usuarios;
    private String nombreString;
    private String nombre;
    private String rut;
    private String telefono;
    private String rol;
    private String usuario;
    private String contrasena;

    public String getContrasena() {
        return contrasena;
    }

    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getRol() {
        return rol;
    }

    public void setRol(String rol) {
        this.rol = rol;
    }

    public String getRut() {
        return rut;
    }

    public void setRut(String rut) {
        this.rut = rut;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public Funcionarios(String nombre, String rut, String telefono, String rol, String usuario, String contrasena) {
        this.nombre = nombre;
        this.rut = rut;
        this.telefono = telefono;
        this.rol = rol;
        this.usuario = usuario;
        this.contrasena = contrasena;
    }
    
    
    
    public Funcionarios(){
        db = new Database();
        usuarios = new ArrayList();
    }
    public ArrayList getUsuarios(){
        usuarios.clear();
        Modelo.Persona art;
        db.abrirConexion();
        ResultSet aux = db.query("SELECT * FROM tbl_usuario");
        try{
            while(aux.next()){
                art = new Modelo.Persona(aux.getString("id"),aux.getString("nombre"),aux.getString("rut"),aux.getString("telefono"),aux.getString("contraseña"),aux.getString("rol"));
                usuarios.add(art);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return usuarios;
    }
    
    public ArrayList getEmpleados(){
        usuarios.clear();
        db.abrirConexion();
        ResultSet aux = db.query("SELECT usuario FROM tbl_usuario");
        try{
            while(aux.next()){
                String art = (aux.getString("usuario"));
                usuarios.add(art);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return usuarios;
    }
    
    public String getNombreEmpleado(Persona persona){
        String art = "";
        db.abrirConexion();
        ResultSet aux = db.query("SELECT nombre FROM tbl_usuario where usuario =" + "'" + persona.getUsuario() + "'");
        try{
            while(aux.next()){
                art = (aux.getString("nombre"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return art;
    }
    
    public String getRutEmpleado(Persona persona){
        String art = "";
        db.abrirConexion();
        ResultSet aux = db.query("SELECT rut FROM tbl_usuario where usuario =" + "'" + persona.getUsuario() + "'");
        try{
            while(aux.next()){
                art = (aux.getString("rut"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return art;
    }
    
    public String getTelefonoEmpleado(Persona persona){
        String art = "";
        db.abrirConexion();
        ResultSet aux = db.query("SELECT telefono FROM tbl_usuario where usuario =" + "'" + persona.getUsuario() + "'");
        try{
            while(aux.next()){
                art = (aux.getString("telefono"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return art;
    }
    
    public String getRolEmpleado(Persona persona){
        String art = "";
        db.abrirConexion();
        ResultSet aux = db.query("SELECT rol FROM tbl_usuario where usuario =" + "'" + persona.getUsuario() + "'");
        try{
            while(aux.next()){
                art = (aux.getString("rol"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return art;
    }
    
    public String getPassEmpleado(Persona persona){
        String art = "";
        db.abrirConexion();
        ResultSet aux = db.query("SELECT contraseña FROM tbl_usuario where usuario =" + "'" + persona.getUsuario() + "'");
        try{
            while(aux.next()){
                art = (aux.getString("contraseña"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return art;
    }

    public String validaUsuarioSimple(Persona persona){
 //       usuarios.clear();
 //       Modelo.Personal art;
        db.abrirConexion();
        ResultSet aux = db.query("SELECT usuario FROM tbl_usuario WHERE usuario = "+"'"+persona.getUsuario()+"'");
        try{
            while(aux.next()){
                nombreString = aux.getString("usuario");
               // usuarios.add(art);
                System.out.println(nombreString);
            }
        }catch(Exception e){
            e.printStackTrace();
        }
        db.cerrarConexion();
        return nombreString;
    }
    public boolean validarUsuario(String usr, String pass){
        try{
            db.abrirConexion();
            ResultSet aux = db.query("SELECT * FROM tbl_usuario WHERE usuario='"+usr+
                    "' AND contraseña='"+ pass+"'");
            String aa="SELECT * FROM tbl_usuario WHERE usuario='"+usr+
                    "' AND contraseña='"+ pass+"'";
                if(aux.first()){
                    System.out.println("DAO true "+aa);
                    return true;        
                }else{
                    System.out.println("DAO false "+aa);
                    return false;
                }    
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    } 
     public boolean validarPerfil(String usr){
        try{
            db.abrirConexion();
            ResultSet aux = db.query("SELECT * FROM tbl_usuario WHERE usuario='"+usr+
                    "' AND rol='admin'");
            
            String aa="SELECT * FROM tbl_usuario WHERE usuario='"+usr+
                    "' AND rol='admin'";    
            if(aux.first()){
                    System.out.println("DAO true "+aa);
                    return true;        
                }else{
                    System.out.println("DAO false "+aa);
                    return false;
                }    
        }catch (Exception e){
            e.printStackTrace();
            return false;
        }
    }    

    public void creaUsuario(Persona persona){
        try{
            db.abrirConexion();
            db.queryDML("insert into tbl_usuario (nombre,rut,telefono,rol,usuario,contraseña) values("+"'"+persona.getNombre()+"'"+","+"'"+persona.getRut()+"'"+","+persona.getTelefono()+","+"'"+persona.getRol()+"'"+","+"'"+persona.getUsuario()+"'"+","+"'"+persona.getContrasena()+"'"+")");
            db.cerrarConexion();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
    
    public void borrarUsuario(Persona persona){
        try{
            db.abrirConexion();
            db.queryDML("delete from tbl_usuario where usuario = ("+"'"+persona.getUsuario()+"'"+")");
            db.cerrarConexion();
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}
